package org.atlantis.grosbeak.depot;

import org.atlantis.grosbeak.depot.desc.ObjectDesc;

/**
 * 配置加载接口。
 * 
 * @author <a href="mailto:seenoevil.cn@gmail.com">SeeNoEvil</a>
 * 
 */
public interface DepotLoader {
	/**
	 * 获取配置文件中所有的对象的ID。
	 * 
	 * @return 配置文件中所有对象的ID的数组。
	 */
	String[] getIds();

	/**
	 * 根据对象的ID读取出一个对象的描述。
	 * 
	 * @param id
	 *            对象的ID。
	 * @return 读取到的对象的描述。
	 * @throws DepotException
	 */
	ObjectDesc load(String id) throws DepotException;

	/**
	 * 判断配置文件中是否存在指定ID的对象。
	 * 
	 * @param id
	 *            对象的ID。
	 * @return 如果存在则返回true、否则返回false。
	 */
	boolean has(String id);
}
